package cn.gok;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

/**

 测试 @ModelAttribute注解
        添加在方法上，然后当前控制器类中的任意RequestMapping方法执行的时候，
            ModelAttribute方法会先执行
 */
@Controller
public class TestControllerModelAttribute {


    /**
       添加在没有放回值的方法上
     */
    @ModelAttribute
    public void test(ModelMap modelMap){
        modelMap.addAttribute("msg","响应成功");
        modelMap.addAttribute("code","200");
    }

    /**
        添加在有返回值的方法上，此时返回的对象会被存入数据模型 model中，
        且key为类型首字母小写。
        当然也可以在@ModelAttribute中直接指定key的值
     */
//    @ModelAttribute("user")
//    public User test(){
//        User user = new User();
//        user.setUserNamex("zhangsan");
//        user.setGender("男");
//        return user;
//    }


    @RequestMapping("/test01")
    public String test01(){
        return "testModelAttribute";
    }

    @RequestMapping("/test02")
    public String test02(){
        return "testModelAttribute";
    }

    @RequestMapping("/test03")
    public String test03(@ModelAttribute("code") Integer code){
        System.out.println("code: " + code);
        return "testModelAttribute";
    }

}
